<?php

require_once "DB.php";
/**
 * Classe de conexão com o banco
 */
class BancoDeDados {

    private static $bancoDeDados;
    private $serverName;
    private $userName;
    private $password;
    private $databaseName;
    private $link;

    /**
     * Construtor privado que se conecta ao banco de dados
     */
    private function __construct() {
        $this->serverName = "localhost";
        $this->userName = "museu";
        $this->password = "museu";
        $this->databaseName = "midas";
        $this->link = DB::connect("pgsql://".$this->userName.":".$this->password."@".$this->serverName."/".$this->databaseName);
        if (!DB::isError($this->link)) {
            $this->link->setFetchMode(DB_FETCHMODE_ASSOC);
        } else {
            throw new Exception($this->link->getMessage());
        }
    }

    /**
     * @method BancoDeDados getInstance() para obter uma única instância do Classe que se conecta ao banco de dados
     * @return BancoDeDados
     */
    public static function getInstance() {
        if (!isset (self::$bancoDeDados)) {
            self::$bancoDeDados = new BancoDeDados();
        }
        return self::$bancoDeDados;
    }

    public function getLink() {
        return $this->link;
    }
}
?>